package com.ftg.learn.lesson2;

/**
 * 学习位运算当中的与或
 *
 * @author kangjx
 * @version 1.0
 * @date 2023/6/2 上午8:14
 */
public class LearnOptions02 {

    public static void main(String[] args) {
        /**
         *  位 &  位 |  位  ^
         *
         *  逻辑 & 逻辑 | 逻辑 ^
         */
        int a = 3;
        int b = 4;
        System.out.println(a & b);
        System.out.println(a | b);
        System.out.println(a ^ b);
        /**
         * 求数字的二进制
         * 00000011
         * 00000100
         * 位 & 一假为假  全真为真
         * 0000 0000
         * 位| 全假为假  一真为真
         * 00000011
         * 00000100
         * 00000111
         * 7
         * ^ 异或 不同为真  相同为假
         * 00000011
         * 00000100
         * 00000111
         */

        int x = 23;
        int y = 45;

        /**
         * 第三个变量
         */
        int z = x;
        x = y;
        y = z;

        /**
         * 积的变化
         */
        x = x * y;
        y = x / y;
        x = x / y;

        /**
         * 差变化
         */
        y = y - x;
        x = x + y;
        y = x - y;

        /**
         * 和变化
         */
        x = x + y;
        y = x - y;
        x = x - y;

        /**
         * 异或
         */
        x = x ^ y;
        y = x ^ y;
        x = x ^ y;

    }


}
